package ModelLayer;

import java.util.ArrayList;
/**
 * class KundeContainer
 * 
 * @author (Gruppe 6) 
 * @version (2012)
 */
public class KundeContainer
{
    
    public ArrayList<Kunde> kunde;
    private static KundeContainer instance;
    /**
     * Constructor for objects of class KundeContainer
     */
    private KundeContainer()
    {
        kunde = new ArrayList<Kunde>();
        
    }

    public static KundeContainer getInstance()
    {
        if(instance == null) {
            instance = new KundeContainer();
        }
        return instance;
    }
    
    /**
     * Tilføj et nyt objekt af klassen Kunde
     */
    public void createKunde(int id, String navn, String adresse, int postNr, String by, int tlf, String firma)
    {
        kunde.add(new Kunde(id, navn, adresse, postNr, by, tlf, firma));
    }
    
    /**
     * Vis en liste af kunder i denne container
     */
    public ArrayList<Kunde> listKunde()
    {
        return kunde;
    }
    
    /**
     * Slet en kunde efter kundeId
     */
    public boolean deleteKunde(int id)
    {
        int index = 0;
        boolean found = false;
        Kunde kundeList = null;
        
        while(index < kunde.size() && !found)
        {
            kundeList = kunde.get(index);
            
            if(kundeList.getId() == id)
            {
                found = true;
            }
            else
            {
                index ++;
            }
        }
        
        if(found)
        {
            kunde.remove(index);
            return true;
        }
        else
        {
            return false;
        }
    }
    
    /**
     * Find en kunde efter kundenavn
     */
    public Kunde findKunde(String navn)
    {
        int index = 0;
        boolean found = false;
        Kunde kundeList = null;
        
        while(index < kunde.size() && !found)
        {
            kundeList = kunde.get(index);
            
            if(kundeList.getNavn().equals(navn))
            {
                found = true;
            }
            else
            {
                index ++;
            }
        }
            
        if(found)
        {
            return kunde.get(index);
        }
        else
        {
            return null;
        }
    }
    
    
    /**
     * Find en kunde efter kundeId
     */
    public Kunde findKundeId(int id)
    {
        int index = 0;
        boolean found = false;
        Kunde kundeList = null;
        
        while(index < kunde.size() && !found)
        {
            kundeList = kunde.get(index);
            
            if(kundeList.getId() == id)
            {
                found = true;
            }
            else
            {
                index ++;
            }
        }
        
        if(found)
        {
            return kunde.get(index);
        }
        
        else
        {
            
            return null;
        }
    }
    
    /**
     * Opdater kundens oplysninger
     */
    public void updateKunde(int id, String navn, String adresse, int postNr, String by, int tlf, String firma)
    {
      
     Kunde p = findKundeId(id);
     if(p != null)
        {
            if(navn.length() > 0)
            {
                p.setNavn(navn);   
            }
     
            if(adresse.length() > 0)
            {
                p.setAdresse(adresse);   
            }
     
            if(postNr > 0)
            {
                p.setPostNr(postNr);   
            }
     
            if(by.length() > 0)
            {
                p.setBy(by);   
            }
            
            if(tlf > 0)
            {
                p.setTlf(tlf);
            }
            
            if(firma.length() > 0)
            {
                p.setFirma(firma);
            }   
        }
    }
    
}
